Skip to main content

Tutorial: Zustandsdiagramm

Zustandsdiagramm entwerfen und implementieren

Ein Zustandsdiagramm ist ein Automat, der zur Laufzeit von Zustand zu Zustand schaltet. Die Zustände sind über Transitionen verbunden, die jeweils eine Wächterbedingung haben. Sowohl in Zuständen wie auch bei Transitionen können Aktionen oder Methoden aufgerufen werden. Wenn eine Wächterbedingung den Wert TRUE bekommt (Ereignis), wird die Transition aktiviert. Dadurch werden die zur Transition gehörenden Aktionen oder Methoden ausgeführt und danach in den Folgezustand geschaltet. Wächterbedingungen sind im einfachen Fall boolesche Variablen, die Ereignisse abbilden oder die ein Ausdruck sind. Ereignisse sind Benutzereingaben einer Visualisierung/Bedienoberfläche, E/As, Zeitereignisse oder Systemereignisse. Ein weiteres oft benötigtes Ereignis ist das Beendigungsereignis, das eintritt, wenn die Aktionen oder Methoden eines Zustands abgeschlossen sind.

Sie fügen im Zustandsdiagrammeditor alle erforderlichen Zustände ein und implementieren die Ablaufsteuerung. Dafür codieren Sie bei den Transitionen die Wächterbedingungen, indem Sie eine boolesche Variable oder einen ST-Ausdruck angeben. Die eigentliche Funktionalität des Zustandsdiagramms implementieren Sie in den Aktionen und Methoden, die in den Zuständen oder während der Transitionen aufgerufen werden.

Die Methoden und Aktionen, die einem Zustandsdiagramm zugeordnet sind, enthalten also die Algorithmen. So setzen Sie das objektorientierte Klassenkonzept klassisch um.

Während der Softwareentwurfsphase können sie den Zustandsdiagrammeditor bereits als Designtool verwenden. So können Sie beispielsweise von einem Zustandsdiagramm eine Grafikdatei (BMP) erzeugen, um es in einer Spezifikation oder ein Entwurfsdokument einzufügen.

  • Identifizieren Sie alle Zustände, die der Automat einnimmt.

  • Identifizieren Sie die möglichen Zustandsübergänge von einem Zustand in einen anderen.

  • Identifizieren Sie die Ereignissen, die während der Laufzeit des Automaten auftreten und einen Zustandsübergang auslösen. Gruppieren Sie die relevanten Ereignisse chronologisch.

  • Identifizieren Sie die ENTRY-, DO- oder EXIT- Aktionen oder Methoden, die während eines Zustands aufzurufen sind.

  • Identifizieren Sie Aktionen oder Methoden, die bei Transitionen aufzurufen sind.

  • Definieren Sie das Verhalten im Fehlerfall.